package com.xjh.basestudy.javabase.generic;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class TestGeneric {
    public static void main(String[] args) {
        //创建集合对象但是不指定泛型
//        Collection c3p0pool = new ArrayList();
        Collection <String> c = new ArrayList<String>();
        //添加元素（没有指定集合中元素类型时候，默认是object类型，因为泛型默认是引用类型，object可以代表所有的引用类型）
        c.add("hello");
        c.add("world");
        c.add("java");
//        c3p0pool.add(122);如果不用泛型这里就不会报错，将发现错误的时间提前了
        //遍历集合(采用迭代器遍历),迭代器是集合对象的一个方法
//        Iterator it = c3p0pool.iterator();
        Iterator<String> it = c.iterator();//这里已经说明了是String，循环里就不用再加强转了


        while(it.hasNext()){
//            Object obj = it.next();//添加的时候是object类型，所以获取的时候也是object类型
//            System.out.println(obj);
//            String s = (String)it.next();//因为添加的是String类型的数据，所以在这里强转成为String类型也是没问题的。
            String s = it.next();//迭代器写上类型后，就不用再强制转换类型了
            System.out.println(s);

        }
    }

}
